"""
    之前说到：当我们收集到的图像数据集比较小的时候，训练模型可能会出现过拟合问题
    解决过拟合可以增加数据集，当我们不想去采集的时候，可以做数据增强，也就是
    随机旋转，裁剪，拼接图像数据集
"""

import os
import random
import shutil

# 指定包含图片的文件夹路径
img_path = "../images"

# 指定支持的图片文件的扩展名
img_suffix = [".jpg", ".jpeg", ".gif", ".png", ".bmp"]

# 获取文件夹中所有的图片文件的路径
img_files_list = []
for root, dirs, files in os.walk(img_path):
    for file in files:
        if os.path.splitext(file)[1] in img_suffix:
            file_path = os.path.join(root, file)
            img_files_list.append(file_path)
            print(file_path)

# 随机选择20张图片
# 确保图片数量大于20张，否则随机选择数量等于文件夹中图片数量
num_choose_img = min(20, len(img_files_list))
# 随机选择图片
# random.sample()函数从img_files_list列表中随机抽取num_choose_img个元素
choose_img_list = random.sample(img_files_list, num_choose_img)
# 打印路径
print(choose_img_list)
print(len(choose_img_list))
# 复制到另一个文件夹中
new_path = "./choose_imgs"
if os.path.exists(new_path):
    print("目标文件夹已存在")
else:
    os.mkdir(new_path)
    for f in choose_img_list:
        shutil.copy(f, new_path)